]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Add :gesture-modes property
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 11 May 2021 14:44:29 +0000 (16:44 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 11 May 2021 23:02:19 +0000 (01:02 +0200)
Both the main app grid and folders got a swipe tracker, which is
active in both OVERVIEW and POPUP mode. The result is that two
trackers fight over the same events, and everybody loses.

Address this by adding a :gesture-modes property that determines
the allowed modes for the associated swipe tracker.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4256

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1844>

js/ui/appDisplay.js

index 39f440127b1cd8736f239511cd42e94f3cddb1c5..f86a7bb67876aaedd7e760c8002a61d831dac85d 100644 (file)
@@ -131,6 +131,12 @@ function _findBestFolderName(apps) {
 
 var BaseAppView = GObject.registerClass({
     GTypeFlags: GObject.TypeFlags.ABSTRACT,
+    Properties: {
+        'gesture-modes': GObject.ParamSpec.flags(
+            'gesture-modes', 'gesture-modes', 'gesture-modes',
+            GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY,
+            Shell.ActionMode, Shell.ActionMode.OVERVIEW),
+    },
     Signals: {
         'view-loaded': {},
     },
@@ -281,8 +287,7 @@ var BaseAppView = GObject.registerClass({
 
         // Swipe
         this._swipeTracker = new SwipeTracker.SwipeTracker(this._scrollView,
-            Clutter.Orientation.HORIZONTAL,
-            Shell.ActionMode.OVERVIEW | Shell.ActionMode.POPUP);
+            Clutter.Orientation.HORIZONTAL, this.gestureModes);
         this._swipeTracker.orientation = Clutter.Orientation.HORIZONTAL;
         this._swipeTracker.connect('begin', this._swipeBegin.bind(this));
         this._swipeTracker.connect('update', this._swipeUpdate.bind(this));
@@ -2196,6 +2201,7 @@ class FolderView extends BaseAppView {
             layout_manager: new Clutter.BinLayout(),
             x_expand: true,
             y_expand: true,
+            gesture_modes: Shell.ActionMode.POPUP,
         });
 
         // If it not expand, the parent doesn't take into account its preferred_width when allocating